/**
 * User: cjay
 * Date: 23.10.11
 * Time: 11:46
 */
package utils {

public class TraceObject {
    public function TraceObject() {
    }

    public static function traceObject(object:Object, depth:int = 0):String
    {
        var prefix:String ="";
        for (var i:int=0; i<depth; i++){
            prefix+="  ";
        }

        var flag:Boolean = false;       // этот флаг проверяет, не является ли объект конечным в иерархии
        var res:String = "\n";
        var key:String;
        var val:Object;
        for (key in object){
            flag = true;
            val = object[key];
            res = res+prefix+"["+key+": "+traceObject(object[key],depth+1)+"]\n";
        }


        if (!flag) res = String(object);

        return res;
    }
}
}
